package com.tabjin.rfidsocket.service.sys;

import com.tabjin.rfidsocket.pojo.SysRole;
import com.tabjin.rfidsocket.pojo.bo.SysRoleBO;
import com.tabjin.rfidsocket.pojo.vo.SysRoleAclVO;
import com.tabjin.rfidsocket.pojo.vo.SysRoleVO;
import com.tabjin.rfidsocket.pojo.vo.SysUserVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysRoleService {
    /**
     * 新增角色
     *
     * @param sysRoleBO 角色对象BO
     * @return
     */
    SysRoleVO add(SysRoleBO sysRoleBO);

    /**
     * 更新角色
     *
     * @param sysRoleBO 角色对象BO
     * @return
     */
    SysRoleVO update(SysRoleBO sysRoleBO);

    /**
     * 获取所有角色
     *
     * @param name 角色名
     * @param id   角色id
     * @return
     */
    List<SysRoleVO> getAll(String name, Integer id);

    /**
     * 获取指定用户的角色列表
     *
     * @param userId
     * @return
     */
    List<SysRoleVO> getRoleListByUserId(Integer userId);

    /**
     * 获取指定权限点的角色列表
     *
     * @param aclId
     * @return
     */
    List<SysRoleVO> getRoleListByAclId(Integer aclId);

    /**
     * 获取指定角色的用户列表
     *
     * @param roleList
     * @return
     */
    List<SysUserVO> getUserListByRoleList(List<SysRoleVO> roleList);
}
